草庐IT

[LC735]行星碰撞

全部标签

swift - 为什么有多个碰撞调用 Sprite Kit Swift

我正在构建一个带有碰撞的iOSswift游戏。英雄正被来自屏幕右侧的小星星轰炸。每次星星击中英雄时,都会迭代分数并移除星星。但是,分数增加了不止一分。节点设置:varstar=SKSpriteNode(imageNamed:"star")star.size=CGSizeMake(30,30)star.zPosition=10varstarPhysicsRect=CGRectMake(star.position.x-star.frame.size.width/2,star.position.y-star.frame.size.width/2,star.frame.size.width,s

ios - iOS Swift 中的碰撞检测

我已经为三个按钮和FloorUIImageView创建了一个碰撞检测函数,但是我在if!isRotating代码行中收到“ExpectedDeclaration”错误.一点帮助就太好了。importUIKitclassViewController:UIViewController{varlocation=CGPoint(x:0,y:0)varanimator:UIDynamicAnimator?vargravity:UIGravityBehavior?varisRotating=falsevarcollision:UICollisionBehavior!@IBOutletvarBall

swift - 如何检测 Scenekit- iOS 中两个不同 .scn 文件的节点之间的碰撞?

我有两个不同的.scn文件,它们有两个不同的父节点和多个子节点。我已经实现了碰撞委托(delegate)方法并且它被正确调用。我的目的是仅当第二个.scn文件的任何子节点与第一个.scn文件的任何子节点或根节点发生冲突时才发现冲突,反之亦然。但是现在,由于在两个.scn文件中,所有子节点都紧密放置,这些代表总是被调用提供contact.nodeA和contact.nodeB作为两个子节点,它们从同一个.scn文件相互碰撞。是否只有当contact.nodeA来自不同的.scn文件(可以是任意子节点)和contact.nodeB来自不同的.scn文件(可以是任意子节点)时才可以检测碰撞?

swift - 如何在接触/碰撞时改变物理体形

我创建了一个具有圆形物理体的Sprite。我想在与另一个物体接触/碰撞时将圆形更改为矩形物理物体。我相信这应该在didBeginContact中完成。这是我到目前为止所做的ball.position=CGPointMake(self.frame.size.width/2,self.frame.size.height/2)self.addChild(ball)ball.physicsBody=SKPhysicsBody(circleOfRadius:ball.frame.size.width/2)ball.physicsBody?.friction=0ball.physicsBody?.

swift - 从两个对象检测 SpriteKit 上的碰撞

当我用大炮射击时,我在检测两个物体的碰撞时遇到了一些问题。目标是从中射出一颗子弹,并在它与障碍物碰撞后立即移除。似乎游戏中根本没有发生碰撞,因为我无法收到我设置的“碰撞”消息。看看下面的代码:classGameScene:SKScene,SKPhysicsContactDelegate{enumBodyType:UInt32{casebullet=1caseline=2casebreaker=4}我已经列举了组件,所以我可以将它们设置在类别位掩码中。之后,我在触摸开始时进行了拍摄设置。overridefunctouchesBegan(touches:Set,withEventevent

即使没有碰撞位掩码,swift skspritenode 也会发生碰撞

scorenode=SKSpriteNode()scorenode.size=CGSize(width:self.frame.width*0.2,height:1)scorenode.physicsBody=SKPhysicsBody(rectangleOf:scorenode.size)scorenode.color=.redscorenode.physicsBody?.affectedByGravity=falsescorenode.physicsBody?.isDynamic=falsescorenode.physicsBody?.categoryBitMask=PhysicsC

ios - SKSpriteNode 在碰撞时失去速度

我正在制作一个iOS应用程序,遇到了一些物理问题。正如您通过下面的.GIF可以看出的那样,当我旋转六边形并且球以一定角度撞击矩形时,它失去了一些速度并且不会反弹得那么高。这是因为共享的原因here(主要是因为我限制了球的水平位置,它只在击球角度时使用垂直速度,因此失去了速度)。我一辈子都想不出解决这个问题的方法。有人有什么想法吗??Ball节点代码:funccreateBallNode(ballColor:String)->SKSpriteNode{letball=SKSpriteNode(imageNamed:ballColor)ball.position=CGPoint(x:CGR

ios - SpriteKit 碰撞检测中 SKSpriteNodes 之间的间隙

我已经尝试解决这个问题很长一段时间了——我有一款游戏具有简单的平台游戏物理原理,其中玩家掉落到一个block上,从而阻止他掉落。这是可行的,但是玩家停止的位置与实际对象/Sprite节点所在的位置之间存在明显的差距。这是一个屏幕截图,它应该是不言自明的:classGameScene:SKScene{overrideinit(){super.init(size:UIScreen.mainScreen().bounds.size)self.physicsWorld.gravity=CGVector(dx:0,dy:-9.8)}requiredinit?(coderaDecoder:NSCo

ios - 在 Sprite Kit 中拖动一个对象与另一个对象碰撞时不会发生弹跳

Here是我遇到的问题的视频。正如您在视频中看到的那样,我移动了一个灰色的球,试图与一个红色的球碰撞。当两个物体碰撞时没有弹跳发生,红球只是移动。我试过调整红球的密度,比如让红球的密度为0.00001。碰撞行为没有差异。如何更改碰撞行为以产生弹跳?这是灰色球的属性:funcpropertiesGrayBall(){gray=SKShapeNode(circleOfRadius:frame.width/10)gray.physicsBody=SKPhysicsBody(circleOfRadius:frame.width/10)gray.physicsBody?.affectedByGr

ios - 检测 SceneKit 中粒子和节点之间的碰撞

我有几个具有运动学phyisicsBodyType的节点,我希望它与某些粒子系统交互,我的意思是我想检测碰撞并在节点与粒子系统中的nay粒子碰撞时执行一些代码.我找到了一种添加事件处理程序的方法,但我不太确定如何使用它(linktomethodhere)。谁能解释一下我如何使用该事件处理程序(最好是用Swift解释一下),或者你能给我另一个想法吗? 最佳答案 最后很简单。首先,您必须将节点数组分配给粒子系统的colliderNodes属性。之后,swift中的代码看起来像这样:particleSystem.handleEvent(S